The present invention aims in general terms to improve the shared management of data objects on communication networks
It concerns, according to a first aspect, a method of marshalling a data object on a computer communication network
It also concerns a method of transferring a data object on a computer communication network and a method of remote updating a data object on a site in a computer communication network.
The present invention concerns, according to another aspect, a method of executing remotely, on a computer communication network, a function on a data object.
It also concerns a method of activating, on a local computer, a function of a distant data object, a method of transferring an interface on a computer communication network, a method of producing a computer request for activation of a function of a data object on a distant computer and a method of activating, on a computer communication network, a function of a data object on a distant computer.
Correlatively, the present invention concerns a device for marshalling a data object, a device for transferring a data object and a device for the updating remote of a data object on a site in a computer communication network, all adapted to implement the aforementioned methods in accordance with the invention.
The present invention also concerns a device for executing remotely, on a computer communication network, a function on a data object, a device for activating on a local computer a function of a distant data object, a device for transferring an interface on a computer communication network, a device for producing a computer request for activating a function of a data object on a distant computer, and a device for activating on a computer communication network a function of a data object on a distant computer.
The present invention lies in general terms in the field of computer communication networks which make it possible to transfer information between sites connected to the network.
The present invention applies to the communication networks which define a communication protocol between the different sites connected to the network.
Such a network can, by way of non-limitative example, be the worldwide communication network such as the Internet, built on top of the HTTP (Hypertext Transfer Protocol) communication protocol.
Such communication networks also define an annotation language, for example XML (Extended Markup Language), which makes it possible in particular on these networks to connect documents together by hypertext links normally referred to as xe2x80x9cpointersxe2x80x9d.
The present invention aims notably to improve the shared management of data objects on such computer communication networks.
In a distributed object system, the data object is an element comprising data, also referred to as attributes, and functions possibly using input arguments. Conventionally, these functions can be invoked to manipulate the data of the object.
All the functions applicable to an object and attributes constitute its interface.
Each data object is created in a programming language used by a data processing application which is used on the site in the network on which the object is created.
Such programming languages are known, for example, by the name of JAVA or C++.
So that a data object can be shared on a communication network, it is necessary to code it in such a way that it is neither dependent on the architecture of the communication network nor dependent on the programming language in which the data processing application has created the object.
This is necessary since another computer cannot have the same network architecture or may implement a different data processing application.
When the data object is received by another site, a reverse marshalling operation must be applied to the object in order to obtain a representation of the object in the data processing application used on this second site.
The company Allaire Corporation recently developed a WDDX system which makes it possible to distribute data objects on a network. This WDDX system uses an XML communication language for facilitating the exchanges of complex data structures on a communication network.
For example, this WDDX system enables a data structure programmed in C to be marshalled to the XML communication language, then transferred from a first computer to a second computer in the network, and finally unmarshalled on the second computer in an equivalent data structure.
However, this WDDX system is largely unsuited to the marshalling and transfer of a data object having data fields with a complex structure. Such a complex structure is observed in particular when a data field points to or contains at least one other data field which itself may be complex.
The WDDX system in this case requires the XML representation of the higher data structure also to contain the XML representation of the lower data structures, and this recursively.
This way of proceeding considerably affects the performance of the marshalling and transfer of data objects on a network.
In addition, representation in XML communication language unnecessarily occupies a broad bandwidth of the network, whilst the destination site may in reality not need lower data structures.
In addition, this WDDX system concerns only the transfer of data, and does not permit the invocation of function on data at a distance.
In general terms, the interface of the object does not concern the WDDX system.
The company Datachannel has also proposed a Web Broker system which makes it possible to distribute data objects on a communication network.
This Web Broker system makes it possible to define the concept of the interfaces on the network
However, it is not possible in this system to obtain a source code for a function catalogued in an interface. Thus it is not possible to reimplement this function on a local computer and to invoke it locally on a copy of a distant object.
The aim of the present invention is to facilitate the sharing of data objects on a communication network.
To this end, the present invention relates first of all to a method of marshalling a data object on a computer communication network, from a programming language used by a data processing application to a communication language which can be used by a communication protocol of the computer communication network, comprising the following steps:
reading a data field included in said data object;
substituting, for said data field, a computer address associated with said data field when the structure of said data field is complex; and
storing said computer address associated with said data field in a table of associations.
Thus the method of marshalling a data object according to the invention makes it possible to temporarily replace at least one complex data field with a computer address and if necessary to proceed with the marshalling of this data field to a communication language only when it is required by a site in the communication network.
The data fields included in a data object comprise both data or attributes proper, the interfaces related to this object and the applicable functions.
By virtue of the table of associations in which there are stored the computer addresses associated with each data field, different complex data fields are made visible for all the sites connected to the network.
Only the literal objects are marshalled by value.
These literal objects are for example integers, decimal numbers, Boolean elements, characters or a short chain of characters.
According to a preferred characteristic of the invention, at the storage step, said data field is stored in said programming language.
Thus it is possible to generate in advance representations of the different data fields by means of a computer address stored in the table of associations without actually having to perform the marshalling of this data field from the programming language to the communication language.
This marshalling in the communication language can be postponed until an object is requested by one of the sites in the network via a computer address.
In practice, the complex data structures are chosen from at least one data object, an array or a chain of characters of minimum length.
Thus, when the complex data fields are themselves data objects, the marshalling method according to the invention makes it possible to obtain a representation of a data object by means of links pointing to other data objects, similar to the pointers included in the HTML annotation language used on the Internet.
In this way a graph of data objects is obtained similar to the graph of documents pointing to each other which form the World Wide Web in a communication network of the Internet type.
According to an advantageous characteristic of the invention, the marshalling method includes a step of comparing the structure of a data field with a pre-established list of complex data structures.
This comparison in practice facilitates the detection of the complex data fields included in a data object in order to associate a computer address with them.
According to a second aspect of the invention, a method of transferring a data object on a computer communication network comprises the following steps:
receiving a computer request to transfer;
extracting a computer address from said computer request;
identifying a data object associated with said computer address in a table of associations;
marshalling said identified data object to a communication language which can be used by a communication protocol of said communication network; and
transferring said marshalled data object.
Thus, by virtue of the identification of each data object in a table of associations by means of its computer address, the data objects can easily be shared on the communication network and be transferred from one site to another according to requirements.
According to a third aspect of the invention, a method of remote updating a data object on a site in a computer communication network comprises the following steps:
receiving a computer request to update;
extracting a computer address from said computer request;
extracting from said computer request a data object marshalled to a communication language which can be used by a communication protocol of said computer communication network; and
associating, in a table of associations of said site, said computer address and data object extracted.
It is thus possible to update at a distance a table of associations on a site, from computer requests including both a computer address and a data object marshalled to a communication language.
In practice, when an operation has taken place on a data object and the data fields have been modified, the site on which the data object has been modified can send a broadcast updating computer request to all the sites in the network, so that the latter update the tables of associations stored respectively on these sites.
Each site can also store in memory the list of data objects which have been copied on distant sites, in association with the address of these distant sites, and send an update request to these distant sites when the associated object has been modified.
Preferably the remote updating method also includes a step of marshalling the extracted data object to a programming language used by a data processing application of said site.
Thus each site can update, in its internal data, data objects marshalled to a programming language peculiar to the data processing application of the site.
According to a preferred characteristic of this distance updating method, the association step comprises the following sub-steps:
identifying the extracted computer address in the table of associations of said site; and
in the affirmative, substituting the extracted data object for a prior data object stored in association with said extracted computer address in the table of associations.
Thus the table of associations is updated so that the computer address is associated with the new data object transferred.
Preferably, at the substitution step, data fields of the data object extracted are copied to the prior data object stored in the table of associations of said site.
Thus, instead of eliminating overall the prior data object stored in the table of associations, the data fields of the new object are copied one by one to the prior data object. Consequently all the links internal to the application which pointed to the prior data object are still valid and will then point to an updated data object.
Alternatively, the association step comprises the following sub-steps:
identifying the extracted computer address in the table of associations of said site; and
in the negative, adding the association of said extracted data object and said extracted computer address in the table of associations of said site.
The table of associations of a site can thus be increased remotely by the insertion of new data objects resulting from a request to update.
According to a fourth aspect of the invention, it relates to a method of executing remotely, on a computer communication network, a function on a data object.
In fact it is generally not possible, in the known systems, to implement a function on a data object stored on a distant computer.
However, in a computer communication network, the main constraint lies in the transmission rate and bandwidth available on this network.
Another aim of the present invention is to permit the execution at a distance, on a computer communication network, of a function on a data object.
According to the invention, this execution method includes a step of transferring, according to a communication protocol of the communication network, the function associated with an execution code of this function.
Thus it is possible to obtain at a distance the execution code of a function catalogued in an interface of a data object.
This makes it possible to transport on the network the behaviour of the data objects rather than only their state.
This method opens the possibility of redefining functions at a distance, since the data processing applications implemented on the computers in the network support at least one execution code, for example a source code such as ECMA Script (JAVA Script 1.3).
Thus the function execution code is made visible on the network.
According to a preferred characteristic of the invention, at said transfer step, said function is also associated with at least one parameter marshalled to a communication language which can be used by the communication protocol of the computer communication network.
Thus the input arguments are also transmitted at said transfer step and make it possible to implement the function by associating chosen input arguments with it.
Preferably the distance execution method includes a step of transferring, according to a communication protocol of the communication network, an interface of a data object, comprising one or more functions associated respectively with the execution code of said functions.
It is thus possible to transfer and make visible on the communication network not only a function associated with a data object, but also the whole of its interface, in which each function catalogued is associated with its execution code, in order to permit the execution of the functions at a distance on the communication network.
In practice, the execution code is a source code, such as the JAVA Script code, a precompiled code, such as a bytecode, or a compiled code, ready to be executed by the data processing application.
According to a fifth aspect of the invention, a method of activating on a local computer a function of a distant data object on a computer communication network includes the following steps:
receiving, on the local computer, a copy of said distant data object marshalled to a communication language which can be used by the communication protocol of the communication network;
extracting from said data object received, at least one computer address referencing an interface of said object;
sending, to a distant computer, a request to get said interface including the computer address; and
receiving in response said interface comprising one or more functions associated respectively with the execution code for said functions.
The activation method thus makes it possible to copy on a local computer both a distant data object and at least one associated interface, so that the functions of the object can be applied directly to the local computer, on a copy of the object.
The execution of this function is then no longer dependent on the bandwidth available on the network, which constitutes the bottleneck in such a communication system.
In addition the activation of this function can also be implemented when the local computer is connected only intermittently to the network.
It should be noted that the execution code associated with each function of the interface can be directly included in the response, being marshalled in a communication language which can be used by the network, or only included by reference by means of a computer address referencing this execution code on the network. In the latter case, the local computer can require the transfer of this execution code in a deferred manner, only when the associated function is to be executed.
According to an advantageous characteristic, the activation method also includes a step of creating a class in a programming language used by a data processing application of said local computer, said class comprising the function or functions of said interface received and the execution code of these functions.
In this way a standard class is obtained, similar to that which would have been obtained by compiling a class on the local computer from an associated source code.
According to a sixth aspect of the invention, a method of transferring an interface on a computer communication network, in response to a get request sent at the sending step of the activation method according to the invention, comprises the following steps:
receiving said get request;
extracting the computer address referencing said interface;
identifying said interface in a table of associations storing said computer address in association with an interface; and
transferring said interface marshalled to a communication language which can be used by the communication protocol of the network, comprising one or more functions associated respectively with the execution code for said functions.
This method of transferring an interface thus makes it possible, in a practical manner, to find, by virtue of a table of associations, the interface associated with a data object, and to transfer this interface to another computer in the network, in order to permit the execution at a distance of this function on a copy of the data object.
According to a seventh aspect of the invention, a method of producing a computer request for activating a function of a data object on a distant computer in the computer communication network, includes the following steps:
entering a computer address referencing said data object;
entering an identifier of the function; and
adding the execution code associated with said function.
By virtue of the production of this computer request, in which, in addition to the function to be executed, the execution code associated with this function is also introduced, it is possible to execute this function at a distance on a data object stored in a distant computer in the network.
Thus the functionalities of the distant computer are not fixed, but can be increased through the reception of such computer requests for remote activation, which make it possible to identify both the function and its execution code.
According to an eighth aspect of the invention, a method of activating on a computer communication network a function of a data object on a distant computer includes the following steps:
receiving an activation request produced in accordance with the producing method in accordance with the invention;
extracting, from this activation request, the computer address referencing the data object;
extracting the identifier of said function;
extracting the execution code associated with said function; and
executing said code extracted on the data object.
It is thus possible to invoke and activate at a distance a function on a data object of the communication network
Correlatively, the present invention concerns a device for marshalling a data object on a computer communication network, from a programming language used by a data processing application to a communication language which can be used by a communication protocol of said computer communication network, having:
means of reading a data field included in said data object;
means of substituting, for said data field, a computer address associated with said data field when the structure of said data field is complex; and
means of storing said computer address associated with said data field in a table of associations.
According to the second aspect of the invention, a device for transferring a data object on a computer communication network has:
means of receiving a computer request for transfer;
means of extracting a computer address from said computer request;
means of identifying a data object associated with said computer address in a table of associations;
means of marshalling said identified data object to a communication language which can be used by a communication protocol of said communication network; and
means of transferring said marshalled data object.
According to the third aspect of the invention, a device for the updating remote of a data object on a site in a computer communication network has:
means of receiving a computer request to update;
means of extracting a computer address from said computer request;
means of extracting from said computer request a data object marshalled to a communication language which can be used by a communication protocol of said computer communication network; and
means of associating, in a table of associations of said site, said computer address and computer object extracted.
According to the fourth aspect of the invention, a device for executing remotely, on a computer communication network, a function on a data object, comprises transfer means according to a communication protocol of the communication network, adapted to transfer said function associated with an execution code of said function.
According to the fifth aspect of the invention, a device for activating on a local computer a function of a distant data object on a computer communication network comprises:
means of receiving, on the local computer, a copy of said distant data object marshalled to a communication language which can be used by the communication protocol of the communication network;
means of extracting from said data object received, at least one computer address referencing an interface of said object;
means of sending, to a distant computer, a request to get said interface including the computer address; and
means of receiving in response said interface comprising one or more functions associated respectively with the execution code for said functions.
According to the sixth aspect of the invention, a device for transferring an interface on a computer communication network, in response to a get request sent by the sending means of said activation device according to the invention, comprises:
means of receiving said get request;
means of extracting the computer address referencing said interface;
means of identifying said interface in a table of associations storing said computer address in association with an interface; and
means of transferring said interface marshalled to a communication language which can be used by the communication protocol of the network, comprising one or more functions associated respectively with the execution code for said functions.
According to the seventh aspect of the invention, a device for producing a computer request for activating a function of a data object on a distant computer in the computer communication network comprises:
means of entering a computer address referencing said data object;
means of entering an identifier of said function; and
means of adding the execution code associated with said function.
According to the eighth aspect of the invention, a device for activating on a computer communication network a function of a data object on a distant computer comprises:
means of receiving an activation request produced in accordance with the producing method in accordance with the invention;
means of extracting, from said activation request, the computer address referencing the data object;
means of extracting the identifier of said function;
means of extracting the execution code associated with said function; and
means of executing said code extracted on the data object.
The characteristics and advantages of these different devices are similar to those described previously, respectively for the methods according to the invention which they implement.
The present invention also concerns a computer comprising a device for marshalling a data object and/or a device for transferring a data object and/or a device for remote updating, and/or a device for remote execution, and/or a device for activation of a function on a local computer and/or an interface transfer device, and/or a device for producing an activation computer request and/or a device for activating a function on a distant computer, all in accordance with the invention.
It also relates to a computer communication network including a device for marshalling a data object and/or a device for transferring a data object and/or a remote updating device and/or a remote execution device and/or a device for activating a function on a local computer and/or an interface transfer device and/or a device for producing an activation computer request and/or a device for activating a function on a distant computer, all in accordance with the invention.
This computer and this computer communication network have advantages similar to those described previously in relation to the methods according to the invention.
The present invention also relates to a computer program stored on a storage means or an information carrier, possibly removable, incorporated or not into a computer, comprising portions of software code or program instructions adapted to implement the steps of the marshalling method according to the invention and/or the steps of the transfer method according to the invention and/or the steps of the remote updating method according to the invention and/or the steps of the remote execution method and/or the steps of the method of activating a function on a local computer and/or the steps of the interface transfer method and/or the steps of the method of producing an activation computer request and/or the steps of the method of activating a function on a distant computer, all in accordance with the invention, when said computer program is run into a computer.
Other particularities and advantages of the invention will also appear in the following description.